特定のディレクトリのみでmiseをactivateさせるzsh hook
miseを完全に導入するなら不要なんだけど、とりあえず直近は競合しないように部分適用したくて。 direnvだと、mise自体がdirenvをwrapする機能を持ってるので再帰的に読み込んでしまうからか、mise内部のhook実行時にエラーになってしまうので、zsh hookで解決することにした。
code:zsh
chpwd_with_activate_mise() {
if type mise > /dev/null 2>&1; then
case $PWD in
*/ghq/github.com/someorg/someproject* | \
*/ghq/github.com/takoba/someproject*)
eval "$(mise activate zsh)"
;;
*)
;;
esac
fi
}
add-zsh-hook chpwd chpwd_with_activate_mise
type jq > /dev/null 2>&1 みたいなかんじでjqコマンドの存在確認を入れようかと思ったけど、なんかjqコマンドがmacOSにプリセットっぽい感じで入ってたし、jqに依存しないように書くのが適切だからそれまでは「jqがない!」と単に例外で潰れといてくれ、と思ってこのままにした。jqに依存しないとすると、どうやってactivated判定しようかなあ。っ
参考